1. Field of the Invention
The present invention relates to textual and graphical computer program integration menus, which are menus for accessing other application programs from within an application program. More particularly, the present invention relates to a method and apparatus for dynamically constructing textual and graphical integration menus and toolbars based upon installed application programs.
2. Description of the Related Art
Computers run computer application programs. Originally, a personal computer ran only one application program at a time. However, computer operating systems have been enhanced over the years to permit a single computer to run more than one application program concurrently. Operating systems have been enhanced to allow the operation of terminate-and-stay-resident application programs, task switching, and cooperative multitasking and now, in state of the art operating systems such as IBM OS/2 Warp Version 3 (trademarks of IBM Corp.) and the symmetric multiprocessor (SMP) version of IBM OS/2 version 2.11, multithreaded operation of individual application programs and preemptive multitasking of multiple application programs.
Such state of the art personal computer operating systems allow multiple application programs to be active simultaneously on a single computer such as an IBM PC computer (trademark of IBM Corp.). In a single processor computer or with a single processor enabled computer operating system, such as IBM OS/2 Warp Version 3, the computer executes one application program at a time by executing slices of each active application, and of each active thread of each active multithreaded application, in turn. To a person, called a user, who is operating the computer, however, this preemptive multitasking and multithreaded operation may be perceived as simultaneous execution of multiple active application programs.
Along with the ability to simultaneously execute multiple application programs has come the ability to initiate, or open, a second, presently inactive application program from within a first, presently active application program. Software architectures, such as Object Linking and Embedding (OLE) and OpenDoc have been and are being developed to take advantage of this ability. However, for an application program, or a user of an application program, to take advantage of this ability to open a second application program from within a first application program, the first application program must know of the installation and availability of the second application program and must provide the user with suitable menu choices, called integration menus, for accessing the second application program. Such menu choices within the first application program may be textual, as in a pull down menu, or graphical, as an icon on a toolbar.
Multiple application programs may be sold in a single bundle, or application suite, such as IBM Works, which is included with IBM OS/2 Warp Version 3; Lotus SmartSuite and Lotus Works (trademarks of Lotus Development Corp.); and Microsoft Office and Microsoft Works (trademarks of Microsoft Corp.) and other application suites. Such application suites may be preinstalled on a newly purchased computer; in such case, the seller of the computer may provide appropriate menus when preloading the software. Application suites that are not preinstalled may be provided with an installation utility that allows a user to select all, or some, of the application programs for simultaneous installation; as a part of the installation process, the installation utility may install menus for all of the application programs of the suite which are being installed by the installation utility.
A problem may arise, however, when other application programs, or application programs from a different vendor, are installed on the same computer. These application programs may also conform to the same, or to a compatible, software architecture and therefore be able to take advantage of the computer""s ability to simultaneously execute multiple application programs. However, without integration menus to allow the user to open other application programs from within an already active application program, a significant advantage of the computer""s ability to simultaneously execute multiple application programs may not be fully exploited.
A method and apparatus for dynamically constructing textual and graphical integration menus and toolbars in computer applications is needed.
In accordance with the invention a method and apparatus are provided for the dynamic construction of integration menus. In one embodiment, the invention stores, in a key programs list, both an executable filename and an associated menuitem for each of a plurality of first application programs; installs a menuitem for each of a plurality of such first application programs of the key programs list into a menu of a second application program; and executes one of the first application programs in response to the selection within the second application program of the menuitem associated with that first application program.